
<!DOCTYPE HTML>
<html lang="" >
    <head>
        <title>ctg-sysmgr-permission · GitBook</title>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <meta name="description" content="">
        <meta name="generator" content="GitBook 3.1.1">
        
        
        
    
    <link rel="stylesheet" href="../gitbook/style.css">

    
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-highlight/website.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-search/search.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-fontsettings/website.css">
                
            
        

    

    
        
    
        
    
        
    
        
    
        
    
        
    

        
    
    
    <meta name="HandheldFriendly" content="true"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../gitbook/images/apple-touch-icon-precomposed-152.png">
    <link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">

    
    <link rel="next" href="../ctg-sysmgr-portal/" />
    
    
    <link rel="prev" href="../ctg-mainframe/" />
    

    </head>
    <body>
        
<div class="book">
    <div class="book-summary">
        
            
<div id="book-search-input" role="search">
    <input type="text" placeholder="Type to search" />
</div>

            
                <nav role="navigation">
                


<ul class="summary">
    
    

    

    
        
        
    
        <li class="chapter " data-level="1.1" data-path="../">
            
                <a href="../">
            
                    
                    Introduction
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.1.1" data-path="../ctg-mainframe/">
            
                <a href="../ctg-mainframe/">
            
                    
                    ctg-mainframe
            
                </a>
            

            
        </li>
    
        <li class="chapter active" data-level="1.1.2" data-path="./">
            
                <a href="./">
            
                    
                    ctg-sysmgr-permission
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.3" data-path="../ctg-sysmgr-portal/">
            
                <a href="../ctg-sysmgr-portal/">
            
                    
                    ctg-sysmgr-portal
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.1.4" data-path="../ctg-sysmgr-sso/">
            
                <a href="../ctg-sysmgr-sso/">
            
                    
                    ctg-sysmgr-sso
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.2" data-path="../chapter1.md">
            
                <span>
            
                    
                    First Chapter
            
                </a>
            

            
        </li>
    

    

    <li class="divider"></li>

    <li>
        <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
            Published with GitBook
        </a>
    </li>
</ul>


                </nav>
            
        
    </div>

    <div class="book-body">
        
            <div class="body-inner">
                
                    

<div class="book-header" role="navigation">
    

    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href=".." >ctg-sysmgr-permission</a>
    </h1>
</div>




                    <div class="page-wrapper" tabindex="-1" role="main">
                        <div class="page-inner">
                            
<div id="book-search-results">
    <div class="search-noresults">
    
                                <section class="normal markdown-section">
                                
                                <h1 id="&#x8BA4;&#x8BC1;&#x9274;&#x6743;">&#x8BA4;&#x8BC1;&#x9274;&#x6743;</h1>
<h2 id="1-&#x4E0B;&#x8F7D;&#x5730;&#x5740;">1 &#x4E0B;&#x8F7D;&#x5730;&#x5740;</h2>
<blockquote>
<p><a href="http://132.122.1.84/svn/yingyong/trunk/ctg-ae/ctg-sysmgr/ctg-sysmgr-permission" target="_blank">http://132.122.1.84/svn/yingyong/trunk/ctg-ae/ctg-sysmgr/ctg-sysmgr-permission</a></p>
</blockquote>
<h2 id="2-&#x5DE5;&#x7A0B;&#x7ED3;&#x6784;">2 &#x5DE5;&#x7A0B;&#x7ED3;&#x6784;</h2>
<pre><code>ctg-sysmgr-permission-|
                      |-ctg-sysmgr-permission-control
                      |-ctg-sysmgr-permission-service
                      |-ctg-sysmgr-permission-sdk
</code></pre><h2 id="3-&#x4F7F;&#x7528;&#x65B9;&#x5F0F;">3 &#x4F7F;&#x7528;&#x65B9;&#x5F0F;</h2>
<h3 id="31-&#x6DFB;&#x52A0;maven&#x914D;&#x7F6E;">3.1 &#x6DFB;&#x52A0;Maven&#x914D;&#x7F6E;</h3>
<pre><code>&lt;!-- control&#x5C42;&#x6DFB;&#x52A0;&#x4F9D;&#x8D56; --&gt;
&lt;dependency&gt;
        &lt;groupId&gt;com.ctg.itrdc.sysmgr&lt;/groupId&gt;
        &lt;artifactId&gt;ctg-sysmgr-permission-control&lt;/artifactId&gt;
        &lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
        &lt;groupId&gt;com.ctg.itrdc.sysmgr&lt;/groupId&gt;
        &lt;artifactId&gt;ctg-sysmgr-permission-service&lt;/artifactId&gt;
        &lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt;
&lt;/dependency&gt;
</code></pre><h3 id="32-&#x914D;&#x7F6E;webxml">3.2 &#x914D;&#x7F6E;web.xml</h3>
<pre><code>&lt;!-- Shiro filter start --&gt;
    &lt;filter&gt;
        &lt;filter-name&gt;shiroFilter&lt;/filter-name&gt;
        &lt;filter-class&gt;org.springframework.web.filter.DelegatingFilterProxy&lt;/filter-class&gt;
        &lt;init-param&gt;
            &lt;param-name&gt;targetFilterLifecycle&lt;/param-name&gt;
            &lt;param-value&gt;true&lt;/param-value&gt;
        &lt;/init-param&gt;
    &lt;/filter&gt;

    &lt;filter-mapping&gt;
        &lt;filter-name&gt;shiroFilter&lt;/filter-name&gt;
        &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
        &lt;dispatcher&gt;REQUEST&lt;/dispatcher&gt;
        &lt;dispatcher&gt;FORWARD&lt;/dispatcher&gt;
        &lt;dispatcher&gt;INCLUDE&lt;/dispatcher&gt;
        &lt;dispatcher&gt;ERROR&lt;/dispatcher&gt;
        &lt;dispatcher&gt;ASYNC&lt;/dispatcher&gt;
    &lt;/filter-mapping&gt;
    &lt;!-- Shiro filter end --&gt;
</code></pre><h3 id="33-&#x5207;&#x6362;&#x8BA4;&#x8BC1;&#x6A21;&#x5F0F;">3.3 &#x5207;&#x6362;&#x8BA4;&#x8BC1;&#x6A21;&#x5F0F;</h3>
<ul>
<li>&#x8BA4;&#x8BC1;&#x9274;&#x6743;&#x6A21;&#x5757;&#xFF0C;&#x63D0;&#x4F9B;&#x4E86;&#x4E24;&#x79CD;&#x8BA4;&#x8BC1;&#x6A21;&#x5F0F;&#xFF1A;&#x5355;&#x70B9;&#x767B;&#x5F55;&#x548C;&#x76F4;&#x8FDE;&#x6570;&#x636E;&#x5E93;&#x3002;&#x9ED8;&#x8BA4;&#xFF1A;&#x76F4;&#x8FDE;&#x6570;&#x636E;&#x5E93;&#x3002;</li>
</ul>
<p><strong> &#x914D;&#x7F6E;&#x65B9;&#x5F0F;&#xFF1A;</strong></p>
<ul>
<li>&#x65B9;&#x6CD5;&#x4E00;&#xFF1A;&#x53EF;&#x5728;web.xml&#x914D;&#x7F6E;</li>
</ul>
<pre><code>&lt;context-param&gt;  
        &lt;param-name&gt;spring.profiles.active&lt;/param-name&gt;  
        &lt;param-value&gt;cas&lt;/param-value&gt;  
&lt;/context-param&gt;
</code></pre><ul>
<li>&#x65B9;&#x6CD5;&#x4E8C;&#xFF1A;&#x53EF;&#x5728;&#x8FD0;&#x884C;&#x5BB9;&#x5668;&#x65F6;&#xFF0C;&#x914D;&#x7F6E;jvm&#x53C2;&#x6570;&#xFF1A;</li>
</ul>
<pre><code>-Dspring.profiles.active=db
</code></pre><ul>
<li>&#x5907;&#x6CE8;&#xFF1A;param-value&#x6807;&#x7B7E;&#x503C;<em>cas</em>&#x4E3A;&#x5355;&#x70B9;&#x767B;&#x5F55;&#x8BA4;&#x8BC1;&#x3002;<em>db</em>&#x4E3A;&#x76F4;&#x8FDE;&#x6570;&#x636E;&#x5E93;&#x8BA4;&#x8BC1;&#x3002;</li>
</ul>
<h3 id="34-&#x83B7;&#x53D6;&#x8FD4;&#x56DE;&#x6570;&#x636E;">3.4 &#x83B7;&#x53D6;&#x8FD4;&#x56DE;&#x6570;&#x636E;</h3>
<pre><code>CtgUser ctgUser = WebUtils.getCtgUser();
</code></pre><h2 id="4-&#x6CE8;&#x610F;&#x4E8B;&#x9879;">4 &#x6CE8;&#x610F;&#x4E8B;&#x9879;</h2>
<h3 id="&#x3000;41-&#x5BC6;&#x7801;&#x914D;&#x7F6E;">&#x3000;4.1 &#x5BC6;&#x7801;&#x914D;&#x7F6E;</h3>
<ul>
<li>&#x8BBE;&#x7F6E;/ctg-sysmgr-permission-sdk/src/main/resources/conf/password.properties&#x4E2D;</li>
</ul>
<pre><code># &#x52A0;&#x5BC6;&#x65B9;&#x5F0F;
password.algorithmName=md5
# &#x8FED;&#x4EE3;&#x6B21;&#x6570;
password.hashIterations=1
</code></pre><ul>
<li>&#x52A0;&#x5BC6;&#x5904;&#x7406;&#x5DE5;&#x5177;&#x7C7B;&#xFF1A;com.ctg.sysmgr.permission.sdk.utils.PasswordHelper</li>
</ul>
<h3 id="42-&#x72EC;&#x7ACB;&#x6570;&#x636E;&#x5E93;&#x914D;&#x7F6E;">4.2 &#x72EC;&#x7ACB;&#x6570;&#x636E;&#x5E93;&#x914D;&#x7F6E;</h3>
<ul>
<li>&#x8BA4;&#x8BC1;&#x9274;&#x6743;&#x7684;&#x529F;&#x80FD;&#x6A21;&#x5757;&#xFF0C;&#x4F7F;&#x7528;&#x72EC;&#x7ACB;&#x7684;&#x6570;&#x636E;&#x5E93;&#x3002;&#x9ED8;&#x8BA4;&#x8FDE;&#x63A5;&#x5230;&#x7CFB;&#x7EDF;&#x7BA1;&#x7406;&#x7684;&#x6570;&#x636E;&#x5E93;&#x3002;</li>
<li>&#x914D;&#x7F6E;/ctg-sysmgr-permission-service/src/main/resources/conf/jdbc.permission.properties&#x4FEE;&#x6539;&#x9ED8;&#x8BA4;&#x5730;&#x5740;&#x3002;</li>
<li>service&#x529F;&#x80FD;&#x4F9D;&#x8D56;&#x7CFB;&#x7EDF;&#x7BA1;&#x7406;&#x7684;service&#xFF0C;&#x91CD;&#x7528;&#x7CFB;&#x7EDF;&#x7BA1;&#x7406;&#x7684;&#x670D;&#x52A1;&#x3002;</li>
<li>&#x53C2;&#x8003;&#xFF1A;<a href="ctg-sysmgr-portal/README.md">&#x7CFB;&#x7EDF;&#x7BA1;&#x7406;</a></li>
</ul>
<h3 id="43-shiro&#x8BBE;&#x7F6E;">4.3 shiro&#x8BBE;&#x7F6E;</h3>
<h4 id="&#x3000;431-&#x914D;&#x7F6E;&#x8BF4;&#x660E;">&#x3000;4.3.1 &#x914D;&#x7F6E;&#x8BF4;&#x660E;</h4>
<ul>
<li>&#x627E;&#x5230;/ctg-sysmgr-permission-control/src/main/resources/conf/shiro.properties&#x6587;&#x4EF6;</li>
</ul>
<pre><code># shiro properties

# realm
# &#x662F;&#x5426;&#x5F00;&#x542F;&#x7F13;&#x5B58;&#x3002;&#x5DF2;&#x5728;&#x7A0B;&#x5E8F;&#x7684;service&#x5C42;&#x505A;&#x4E86;&#x7F13;&#x5B58;&#x5904;&#x7406;&#x3002;&#x6B64;&#x5904;&#x9ED8;&#x8BA4;&#x9009;false
shiro.realm.cachingEnabled = false
# &#x662F;&#x5426;&#x5F00;&#x542F;&#x8BA4;&#x8BC1;&#x7F13;&#x5B58;&#x3002;&#x9ED8;&#x8BA4;false
shiro.realm.authenticationCachingEnabled = false
# &#x914D;&#x7F6E;&#x8BA4;&#x8BC1;&#x7F13;&#x5B58;key
shiro.realm.authenticationCacheName = authenticationCache
# &#x662F;&#x5426;&#x5F00;&#x542F;&#x9274;&#x6743;&#x7F13;&#x5B58;&#x3002;&#x9ED8;&#x8BA4;false
shiro.realm.authorizationCachingEnabled = false
# &#x914D;&#x7F6E;&#x9274;&#x6743;&#x7F13;&#x5B58;key
shiro.realm.authorizationCacheName = authorizationCache

# &#x914D;&#x7F6E;&#x767B;&#x5F55;&#x5730;&#x5740;
shiro.loginUrl =  /login
# &#x914D;&#x7F6E;&#x65E0;&#x6743;&#x8BBF;&#x95EE;&#x5730;&#x5740;
shiro.unauthorizedUrl = /unauth
# &#x914D;&#x7F6E;&#x672A;&#x767B;&#x5F55;&#x8BBF;&#x95EE;&#x5730;&#x5740;
shiro.notLoginUrl = /unauth
# &#x914D;&#x7F6E;&#x767B;&#x9646;&#x6210;&#x529F;&#x540E;&#x8DF3;&#x8F6C;&#x5730;&#x5740;
shiro.successUrl = /index
# &#x914D;&#x7F6E;&#x767B;&#x51FA;&#x6210;&#x529F;&#x540E;&#x5730;&#x5740;
shiro.logoutUrl = /

# &#x914D;&#x7F6E;session&#x68C0;&#x9A8C;&#x95F4;&#x9694;&#x65F6;&#x95F4;
session.sessionValidationInterval = 1800000
# &#x914D;&#x7F6E;session&#x8FC7;&#x671F;&#x65F6;&#x95F4;
session.globalSessionTimeout = 1800000
# &#x914D;&#x7F6E;&#x8FC7;&#x671F;&#x540E;&#x5220;&#x9664;session
session.deleteInvalidSessions = true
# &#x5F00;&#x542F;session&#x6821;&#x9A8C;&#x5B9A;&#x65F6;&#x4EFB;&#x52A1;
session.sessionValidationSchedulerEnabled = true
session.sessionIdCookieEnabled = true

# &#x914D;&#x7F6E;session&#x7684;cookie&#x4FE1;&#x606F; 
session.cookie.httpOnly = true
session.cookie.maxAge = 3600
session.cookie.name = sessionId

# rememberMe &#x5904;&#x7406;
rememberMe.name = rememberMe
rememberMe.httpOnly = true
rememberMe.maxAge = 2592000

# &#x9A8C;&#x8BC1;&#x7801;&#x4FE1;&#x606F;
captcha.enable = false
captcha.name = jcaptchaCode

# &#x8FC7;&#x6EE4;&#x5668;&#x914D;&#x7F6E;&#xFF0C;&#x8BBE;&#x7F6E;&#x4E3A;false&#xFF0C;&#x5F00;&#x542F;&#x9274;&#x6743;&#x5904;&#x7406;
filter.ctgPermissions.debug = true
filter.cookie.domain =
filter.cookie.path = /

# shiro &#x8FC7;&#x6EE4;&#x5730;&#x5740;
# anon &#x4E0D;&#x62E6;&#x622A;&#xFF0C;cookie&#x8BBE;&#x7F6E;ctgUser&#x5230;cookie&#xFF0C;ctgUser&#x8BA4;&#x8BC1;&#x62E6;&#x622A;&#xFF0C;ctgPermissions&#x9274;&#x6743;&#x62E6;&#x622A;
shiro.filter =     /unauth = anon\n \
                /login = anon\n \
                /cookie/ctgUser = cookie\n \
                /api/** = anon\n \
                /index = ctgUser,cookie\n \
                /func_menu/menu_tree = ctgUser\n \
                /organization/tree = ctgUser\n \
                /logout = logout\n \
                /** = ctgUser,ctgPermissions\n
</code></pre><h4 id="432-&#x8BA4;&#x8BC1;&#x9274;&#x6743;&#x7F13;&#x5B58;">4.3.2 &#x8BA4;&#x8BC1;&#x9274;&#x6743;&#x7F13;&#x5B58;</h4>
<ul>
<li>&#x53BB;&#x6389;shiro&#x63D0;&#x4F9B;&#x7684;&#x9ED8;&#x8BA4;&#x7F13;&#x5B58;&#x3002;</li>
<li>&#x4F7F;&#x7528;&#x7CFB;&#x7EDF;&#x7BA1;&#x7406;&#x4E2D;&#x81EA;&#x5DF1;&#x5B9E;&#x73B0;&#x7684;&#x7F13;&#x5B58;&#x5904;&#x7406;&#x3002;&#x53C2;&#x8003;&#xFF1A;<a href="../ctg-sysmgr-portal/">&#x7CFB;&#x7EDF;&#x7BA1;&#x7406;</a></li>
</ul>
<h4 id="432-&#x81EA;&#x5B9A;&#x4E49;&#x8FC7;&#x6EE4;&#x5668;">4.3.2 &#x81EA;&#x5B9A;&#x4E49;&#x8FC7;&#x6EE4;&#x5668;</h4>
<ul>
<li>ctgUser&#x8FC7;&#x6EE4;&#x5668;&#xFF0C;&#x4E3A;&#x8BA4;&#x8BC1;&#x62E6;&#x622A;&#x3002;&#x6CA1;&#x767B;&#x5F55;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x901A;&#x8FC7;url&#x8BBF;&#x95EE;&#xFF0C;&#x5219;&#x8DF3;&#x56DE;&#x767B;&#x5F55;&#x9875;&#x9762;&#xFF1B;&#x901A;&#x8FC7;ajax&#x8BBF;&#x95EE;&#xFF0C;&#x5219;&#x8FD4;&#x56DE;403</li>
<li>cookie&#x8FC7;&#x6EE4;&#x5668;&#xFF0C;&#x8BBE;&#x7F6E;ctgUser&#x5BF9;&#x8C61;&#x5230;&#x6D4F;&#x89C8;&#x5668;cookie</li>
<li>ctgPermission&#x8FC7;&#x6EE4;&#x5668;&#xFF0C;&#x8BBE;&#x7F6E;&#x9274;&#x6743;&#x62E6;&#x622A;&#x3002;&#x62E6;&#x622A;&#x89C4;&#x5219;&#xFF1A;&#x7CFB;&#x7EDF;&#x7528;&#x6237;+&#x7CFB;&#x7EDF;&#x5C97;&#x4F4D;+&#x7CFB;&#x7EDF;&#x89D2;&#x8272;&#x7684;&#x6743;&#x9650;&#x914D;&#x7F6E;&#x7684;&#x5730;&#x5740;&#x3002;</li>
</ul>
<h4 id="433-&#x81EA;&#x5B9A;&#x4E49;realm">4.3.3 &#x81EA;&#x5B9A;&#x4E49;Realm</h4>
<ul>
<li>&#x5355;&#x70B9;&#x767B;&#x5F55;Realm&#xFF0C;&#x5B9E;&#x73B0;&#x7C7B;&#xFF1A;com.ctg.sysmgr.permission.shiro.realm.CtgCasRealm</li>
<li>&#x76F4;&#x8FDE;&#x6570;&#x636E;&#x5E93;Realm&#xFF0C;&#x5B9E;&#x73B0;&#x7C7B;&#xFF1A;com.ctg.sysmgr.permission.shiro.realm.CtgDbRealm</li>
</ul>
<h4 id="434-&#x8BA4;&#x8BC1;&#x9274;&#x6743;&#x6A21;&#x578B;">4.3.4 &#x8BA4;&#x8BC1;&#x9274;&#x6743;&#x6A21;&#x578B;</h4>
<ul>
<li>&#x53C2;&#x8003;&#xFF1A;<a href="../ctg-sysmgr-portal/">&#x7CFB;&#x7EDF;&#x7BA1;&#x7406;</a></li>
</ul>

                                
                                </section>
                            
    </div>
    <div class="search-results">
        <div class="has-results">
            
            <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
            <ul class="search-results-list"></ul>
            
        </div>
        <div class="no-results">
            
            <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
            
        </div>
    </div>
</div>

                        </div>
                    </div>
                
            </div>

            
                
                <a href="../ctg-mainframe/" class="navigation navigation-prev " aria-label="Previous page: ctg-mainframe">
                    <i class="fa fa-angle-left"></i>
                </a>
                
                
                <a href="../ctg-sysmgr-portal/" class="navigation navigation-next " aria-label="Next page: ctg-sysmgr-portal">
                    <i class="fa fa-angle-right"></i>
                </a>
                
            
        
    </div>

    <script>
        var gitbook = gitbook || [];
        gitbook.push(function() {
            gitbook.page.hasChanged({"page":{"title":"ctg-sysmgr-permission","level":"1.1.2","depth":2,"next":{"title":"ctg-sysmgr-portal","level":"1.1.3","depth":2,"path":"ctg-sysmgr-portal/README.md","ref":"ctg-sysmgr-portal/README.md","articles":[]},"previous":{"title":"ctg-mainframe","level":"1.1.1","depth":2,"path":"ctg-mainframe/README.md","ref":"ctg-mainframe/README.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"ctg-sysmgr-permission/README.md","mtime":"2016-07-04T10:11:12.045Z","type":"markdown"},"gitbook":{"version":"3.1.1","time":"2016-07-05T01:36:34.340Z"},"basePath":"..","book":{"language":""}});
        });
    </script>
</div>

        
    <script src="../gitbook/gitbook.js"></script>
    <script src="../gitbook/theme.js"></script>
    
        
        <script src="../gitbook/gitbook-plugin-search/search-engine.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-search/search.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-sharing/buttons.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
        
    

    </body>
</html>

